<?php



class Produto
{
	var $id;
	var $descricao;
	var $tipo;
	var $foto;
	var $preco;
	var $estoque;
	var $codigo;
	
	function Produto($idProduto=null){
		if (isset($idProduto)) {
			$this->buscaProduto($idProduto);
		}
	}
	
	function buscaProduto($idProduto) {
		$strQuery 	= "SELECT * FROM produtos WHERE idProduto=" . $idProduto . ";";
		
		$connection	= Modelo::conectaBD();
		$resultSet	= Modelo::query($strQuery, $connection);
		Modelo::desconectaBD($connection);
		
		$resultado = mysql_fetch_array($resultSet);
		
		$this->setAll($resultado['idProduto'], $resultado['descricao'], $resultado['tipo'], './' . $resultado['foto'], $resultado['preco'], $resultado['estoque'], $resultado['codigo']);
	}
	
	static function getAllInstances() {
		$strQuery	= "SELECT idProduto FROM produtos;";
		$connection	= Modelo::conectaBD();
		
		$resultSet	= Modelo::query($strQuery, $connection);
		
		Modelo::desconectaBD($connection);
		
		$produtos	= array();
		$i			= 0;
		
		while($resultado = mysql_fetch_array($resultSet)) {
			$produtos[$i]	= new Produto($resultado['idProduto']);
			$i++;
		}
		
		return $produtos;
	}
	
	function setAll($id, $descricao, $tipo, $foto, $preco, $estoque, $codigo) {
		$this->setId($id);
		$this->setDescricao($descricao);
		$this->setTipo($tipo);
		$this->setFoto($foto);
		$this->setPreco($preco);
		$this->setEstoque($estoque);
		$this->setCodigo($codigo);
	}
	
    /**
     * Returns $descricao.
     * @see Produto::$descricao
     */
    public function getDescricao()
    {
        return $this->descricao;
    }
    
    /**
     * Sets $descricao.
     * @param object $descricao
     * @see Produto::$descricao
     */
    public function setDescricao($descricao)
    {
        $this->descricao = $descricao;
    }
    
    /**
     * Returns $foto.
     * @see Produto::$foto
     */
    public function getFoto()
    {
        return $this->foto;
    }
    
    /**
     * Sets $foto.
     * @param object $foto
     * @see Produto::$foto
     */
    public function setFoto($foto)
    {
        $this->foto = $foto;
    }
    
    /**
     * Returns $id.
     * @see Produto::$id
     */
    public function getId()
    {
        return $this->id;
    }
    
    /**
     * Sets $id.
     * @param object $id
     * @see Produto::$id
     */
    public function setId($id)
    {
        $this->id = $id;
    }
    
    /**
     * Returns $preco.
     * @see Produto::$preco
     */
    public function getPreco()
    {
        return $this->preco;
    }
    
    /**
     * Sets $preco.
     * @param object $preco
     * @see Produto::$preco
     */
    public function setPreco($preco)
    {
        $this->preco = $preco;
    }
    
    /**
     * Returns $tipo.
     * @see Produto::$tipo
     */
    public function getTipo()
    {
        return $this->tipo;
    }
    
    /**
     * Sets $tipo.
     * @param object $tipo
     * @see Produto::$tipo
     */
    public function setTipo($tipo)
    {
        $this->tipo = $tipo;
    }

    /**
     * Returns $estoque.
     * @see Produto::$estoque
     */
    public function getEstoque()
    {
        return $this->estoque;
    }
    
    /**
     * Sets $estoque.
     * @param object $estoque
     * @see Produto::$estoque
     */
    public function setEstoque($estoque)
    {
        $this->estoque = $estoque;
    }

    /**
     * Returns $codigo.
     * @see Produto::$codigo
     */
    public function getCodigo()
    {
        return $this->codigo;
    }
    
    /**
     * Sets $codigo.
     * @param object $codigo
     * @see Produto::$codigo
     */
    public function setCodigo($codigo)
    {
        $this->codigo = $codigo;
    }
	
	public function verificaDisponibilidade($quantidade) {
		if ($quantidade <= $this->getEstoque()) {
			return true;
		}
		else {
			return false;
		}
	}
	
	public function atualizaEstoque($quantidade) {
		$strQuery 	= "UPDATE produtos SET estoque=" . ($this->getEstoque() - $quantidade) . " WHERE idProduto=" . $this->getId() . ";";

		$connection	= Modelo::conectaBD();
		$resultSet	= Modelo::query($strQuery, $connection);
		Modelo::desconectaBD($connection);
	}
}

?>